import 'package:flutter/material.dart';

class ListViewPage extends StatelessWidget {
  const ListViewPage({super.key});

  @override
  Widget build(BuildContext context) {
    // 滚动控制器（可监听滚动事件）
    ScrollController scrollController = ScrollController();

    return Scaffold(
      appBar: AppBar(title: const Text('ListView 全属性示例')),
      body: ListView.builder(
        controller: scrollController, // 滚动控制器
        scrollDirection: Axis.vertical, // 滚动方向：横向或竖向
        reverse: false, // 是否反向滚动
        primary: false, // 是否使用主滚动（通常用于嵌套时设置 false）
        physics: const BouncingScrollPhysics(), // 滚动物理效果
        shrinkWrap: false, // 内容是否包裹视图（一般嵌套时用 true）
        padding: const EdgeInsets.all(16), // 内边距
        itemCount: 20, // 项目总数
        itemExtent: null, // 固定高度（提升性能）
        cacheExtent: 300, // 预缓存范围（像素）
        keyboardDismissBehavior: ScrollViewKeyboardDismissBehavior.onDrag, // 拖动时隐藏键盘
        addAutomaticKeepAlives: true, // 保持 item 状态（如焦点、动画）
        addRepaintBoundaries: true, // 每个 item 是否包含 repaint 边界（推荐 true）
        addSemanticIndexes: true, // 是否添加语义信息
        itemBuilder: (context, index) {
          return Container(
            margin: const EdgeInsets.only(bottom: 12),
            padding: const EdgeInsets.all(16),
            decoration: BoxDecoration(
              color: Colors.blue[100],
              borderRadius: BorderRadius.circular(12),
            ),
            child: Text('列表项 #$index'),
          );
        },
      ),
    );
  }
}
